package com.example.ftp;

import android.app.AlertDialog;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.AsyncTask;
import android.os.Handler;

/*
 * Params1:doInBackground的参数.   			doInBackground运行在一个新线程中执行。
 * Params2:onProgressUpdate的参数    			onProgressUpdate
 * Params3:doInBackground的返回值类型及onPostExecute接收参数的类型
 * 
 * 
 * 生成该类的对象，并调用execute方法之后，
 * 首先，调用onPreExecute，该方法运行在UI线程中，
 * 然后，执行doInBackground方法，该方法的参数是execute传进来的。该方法不运行在UI线程中，所以该方法不能对UI中的控件进行操作。
 * 		 publishProgress可以在doInBackground中调用，每次调用publishProgress都会触发onProgressUpdate的执行，onProgressUpdate是执行在UI线程中的，所以该方法可以对控件进行操作。
 * 最后，当doInBackground执行结束后，会调用onPostExecute方法。该方法运行在UI线程中，所以该方法可以对UI中的控件进行操作。
 * 
 */

public class FtpUploadAsyncTask extends AsyncTask<String, Integer, String>
{
	private ProgressDialog progressDialog;
	private Handler progressHandler;
	private Context con;
	
	public FtpUploadAsyncTask(ProgressDialog progressDialog,Handler progressHandler,Context con)
	{
		this.progressDialog = progressDialog;
		this.progressHandler = progressHandler;
		this.con = con;
	}

	@Override
	protected String doInBackground(String... params)
	{
		Ftp ftp = new Ftp();
		ftp.ftpUpload(params[0],params[1],params[2],params[3],params[4],params[5],params[6]);
		String reString = ftp.ftpUpload(params[0],params[1],params[2],params[3],params[4],params[5],params[7]);
		
		return reString;
	}
	
	@Override
	protected void onPostExecute(String result)
	{
		progressDialog.dismiss();
		progressDialog.setProgress(0);
		progressHandler.removeMessages(0);
		if(result.equals("0"))
		{
			Dialog dialog = new AlertDialog.Builder(con).setTitle("警告").setMessage("FTP上传文件失败！"+"\n"+"请检查："+"\n"+"    1 网络连接是否正常。"+"\n"+"    2 FTP服务器是否开启。").setPositiveButton("确定", new DialogInterface.OnClickListener()
			{
				public void onClick(DialogInterface dialog, int which)
				{
				}
			}).create();
			dialog.show();
		}
//		else if(result.equals("1"))
//		{
//			Dialog dialog = new AlertDialog.Builder(con).setTitle("提示").setMessage("文件上传成功").setPositiveButton("确定", new DialogInterface.OnClickListener()
//			{
//				public void onClick(DialogInterface dialog, int which)
//				{
//				}
//			}).create();
//			dialog.show();
//		}
		super.onPostExecute(result);
	}
	
	@Override
	protected void onPreExecute()
	{
		super.onPreExecute();
	}
	
	@Override
	protected void onProgressUpdate(Integer... values)
	{
		super.onProgressUpdate(values);
	}

}
